var strSimbolo = "L ";
var $strAcademicoCobrosAnulacionUrl = "admin_academico_cobros_anulacion_data.php";
var $strAcademicoCobrosAnulacionForm = "frmAcademicoCobrosAnulacion";
var intAcademicoCobrosAnulacionCorrelativo = 0;
function fntAcademicoCobrosAnulacionFiltro() {
    
    var objInterface = $("#divAcademicoCobrosAnulacionFiltro");
    objInterface.html("");
    $.ajax({

        type: "POST",
        data: $("#"+$strAcademicoCobrosAnulacionForm).serialize(),
        url: $strAcademicoCobrosAnulacionUrl+"?operation=filtro",
        beforeSend:function() {
            fntOpenDialogCargando();
        },
        success:function(data) {
            objInterface.html(data);
            fntCloseDialogCargando();
        },
        error:function() {
            fntCloseDialogCargando();
        }

    });
    
}
function fntAcademicoCobrosAnulacionContenido() {
    var objInterface = $("#divAcademicoCobrosAnulacionContenido");
    objInterface.html("");
    $.ajax({

        type: "POST",
        data: $("#"+$strAcademicoCobrosAnulacionForm).serialize(),
        url: $strAcademicoCobrosAnulacionUrl+"?operation=contenido",
        beforeSend:function() {
            fntOpenDialogCargando();
        },
        success:function(data) {
            objInterface.html(data);
            fntCloseDialogCargando();
        },
        error:function() {
            fntCloseDialogCargando();
        }

    });
    
}
function fntAcademicoCobrosAnulacionContenidoDetalle() {
    
    var objInterface = $("#divAcademicoCobrosAnulacionContenidoDetalle");
    objInterface.html("");
    $.ajax({

        type: "POST",
        data: $("#"+$strAcademicoCobrosAnulacionForm).serialize(),
        url: $strAcademicoCobrosAnulacionUrl+"?operation=contenidoDetalle",
        beforeSend:function() {
            fntOpenDialogCargando();
        },
        success:function(data) {
            objInterface.html(data);
            fntCloseDialogCargando();
        },
        error:function() {
            fntCloseDialogCargando();
        }

    });
    
}
function fntAcademicoCobrosAnulacionAgregar() {
    
    objTabla = $("#tblAcademicoCobrosAnulacionContenidoDetalle");
    strTipo = $("select[name='sltAcademicoCobrosAnulacionTipo']").val();
    sinValor = $("input[name='txtAcademicoCobrosAnulacionValor']").val();
    strNoDocumento = $("input[name='txtAcademicoCobrosAnulacionNoDocumento']").val();
    
    if( sinValor > 0 ) {
        intAcademicoCobrosAnulacionCorrelativo++;
        strHtml = '';
        strHtml += '<tr>';
        strHtml += '<td width="25%" align="center" style="border: 1px solid black;"><input type="hidden" name="hdnAcademicoCobrosAnulacionTipo_'+intAcademicoCobrosAnulacionCorrelativo+'" value="'+strTipo+'">'+strTipo+'</td>';
        strHtml += '<td width="25%" align="center" style="border: 1px solid black;"><input type="hidden" name="hdnAcademicoCobrosAnulacionValor_'+intAcademicoCobrosAnulacionCorrelativo+'" value="'+sinValor+'">'+sinValor+'</td>';
        strHtml += '<td width="25%" align="center" style="border: 1px solid black;"><input type="hidden" name="hdnAcademicoCobrosAnulacionNoDocumento_'+intAcademicoCobrosAnulacionCorrelativo+'" value="'+strNoDocumento+'">'+strNoDocumento+'</td>';
        strHtml += '<td width="25%" align="center" style="border: 1px solid black;">&nbsp;</td>';
        strHtml += '</tr>';
        objTabla.append(strHtml);
    }
    
}
function fntAcademicoCobrosAnulacionValidar() {
    strError = "";
    boolReturn = true;
    
    /*if( $("input[name='txtAcademicoCobrosAnulacion_fk-estudiante']").val() > 0 ) {
        strError += (strError!="")? "\n" : "";
        strError += "Seleccione catedratico";
        boolReturn = false;
    }
    if( $("input[name='txtAcademicoCobrosAnulacion_fk-periodo']").val() > 0 ) {
        strError += (strError!="")? "\n" : "";
        strError += "Seleccione periodo";
        boolReturn = false;
    }
    if( $("input[name='txtAcademicoCobrosAnulacion_fk-grado']").val() > 0 ) {
        strError += (strError!="")? "\n" : "";
        strError += "Seleccione grado";
        boolReturn = false;
    }
    if( $("input[name='txtAcademicoCobrosAnulacion_FECHA-ASIGNACION']").val().length == 0 ) {
        strError += (strError!="")? "\n" : "";
        strError += "Ingrese fecha de asignaci?n";
        boolReturn = false;
    }
    if( $("input[name='txtAcademicoCobrosAnulacion_VIGENCIA-INICIAL']").val().length == 0 ) {
        strError += (strError!="")? "\n" : "";
        strError += "Ingrese vigencia inicial";
        boolReturn = false;
    }
    if( $("input[name='txtAcademicoCobrosAnulacion_VIGENCIA-FINAL']").val().length == 0 ) {
        strError += (strError!="")? "\n" : "";
        strError += "Ingrese vigencia final";
        boolReturn = false;
    }*/
    
    if( !boolReturn )
        alert(strError);
        
    return boolReturn;
    
}
function fntAcademicoCobrosAnulacionGrabar() {
    
    var objInterface = $("#divAcademicoCobrosAnulacionOperaciones");
    objInterface.html("");
    if( fntAcademicoCobrosAnulacionValidar() ) {
        
        $('input[name="txtEmisionValor"]').toNumber();
        $('input[name*="txtDebe_"]').toNumber();
        $('input[name*="txtHaber_"]').toNumber();
        $('input[name="txtTotalDebe"]').toNumber();
        $('input[name="txtTotalHaber"]').toNumber();
        
        $.ajax({

            type: "POST",
            data: $("#"+$strAcademicoCobrosAnulacionForm).serialize(),
            url: $strAcademicoCobrosAnulacionUrl+"?operation=s",
            beforeSend:function() {
                fntOpenDialogCargando();
            },
            success:function(data) {
                objInterface.html(data);
                fntCloseDialogCargando();
                fntAcademicoCobrosAnulacionContenido();
            },
            error:function() {
                fntCloseDialogCargando();
            }

        });
    }
    
}
function fntAcademicoCobrosAnulacionNuevo() {
    
    var objInterface = $("#divAcademicoCobrosAnulacionOperaciones");
    objInterface.html("");
    $("input[name='hdnAcademicoCobrosAnulacion_Id']").val("");
    fntAcademicoCobrosAnulacionContenido();
    
}
var intCorrelativo = 1;
function drawNewLine(id, strCuentaId, strCuentaNombre, strTipo, strMonto ) {
    
    var strHTML = "";
    var strStyle = "";
    var empresa = 0;
    var boolEdit = true;
    if( typeof(strCuentaId) == "undefined" ) {
        strCuentaId = "";
        strCuentaIdNombre = "";   
    }
    else {
        boolEdit = false;
        strCuentaIdNombre = strCuentaId+" - "+strCuentaNombre;
    }
    if( typeof(strCuentaNombre) == "undefined" ) strCuentaNombre = "";
    if( typeof(strTipo) == "undefined" ) strTipo = "";
    if( typeof(strMonto) == "undefined" ) {
        strMonto = "";
        strMontoDebe = "";
        strMontoHaber = "";
    }
    else {
        strStyle = "display:none";
        if( strTipo=="d" ) {
            strMontoDebe = strMonto;            
            strMontoHaber = "";
        }
        if( strTipo=="h" ) {
            strMontoDebe = "";
            strMontoHaber = strMonto;
        }
    }
    
    strHTML =   '<div style="float: left; width: 400px; height: 30px; text-align:left;">'
                +'<input type="text" name="txtSerch_'+id+'" id="txtSerch_'+id+'" value="" size = "50" style="'+strStyle+'" />'
                +'<input type="hidden" name="hdnCuenta_'+id+'" id="hdnCuenta_'+id+'" value="'+strCuentaId+'" />'
                +'<div id="divCuenta_'+id+'" title="Hacer doble click para seleccionar otra cuenta." style="text-align:left;">'+strCuentaIdNombre+'</div>'
                +'</div>'
                +'<div style="float: left; width: 200px; height: 30px;"><input type="text" name="txtDebe_'+id+'" id="txtDebe_'+id+'" value="'+strMontoDebe+'" style="text-align: right;"></div>'
                +'<div style="float: left; width: 200px; height: 30px;"><input type="text" name="txtHaber_'+id+'" id="txtHaber_'+id+'" value="'+strMontoHaber+'" style="text-align: right;"></div>';
    $("#frmPartidas-detalle").append(strHTML);
    
    
    $("select[name='sltAcademicoCobrosAnulacionEmpresas'] option:selected").each( function() {
        empresa = $(this).val();
    });
    
    $("#txtSerch_"+id).autocomplete({
        
        source: "admin_contabilidad_partidas_data.php?operation=cgcun&empresa="+intEmpresa,
        minLength: 1,
        select: function( event, ui ) {
            
            //if( !checkCuentas(ui.item.id) ) {
                $("input[name='hdnCuenta_"+id+"']").val(ui.item.id);
                $("#divCuenta_"+id).html(ui.item.value);
                $(this).hide();
                if( $( "#txtDebe_"+id).val().length > 0 || $("#txtHaber_"+id).val().length > 0 ) {
                    intCorrelativo++;
                    drawNewLine(intCorrelativo);
                    getTotales();
                    $("#txtSerch_"+intCorrelativo).select();
                }
            /*}
            else {
                alert("¡Cuenta ya seleccionada!");
                $("#txtSerch_"+id).select();
            }*/
            
        }
                
    });
    
    $("#txtDebe_"+id).keyup(function() {
        
        nextID = id + 1 * 1;
        if( $(this).val().length > 0 && $("#txtSerch_"+nextID).length == 0 && $("#hdnCuenta_"+id).val().length > 0 ) {
            
            intCorrelativo++;
            drawNewLine(intCorrelativo);
            getTotales();
            //$("#txtSerch_"+intCorrelativo).select();
            
        }
    });
    
    $("#txtHaber_"+id).keyup(function() {
        
        nextID = id + 1 * 1;
        if( $(this).val().length > 0 && $("#txtSerch_"+nextID).length == 0  && $("#hdnCuenta_"+id).val().length > 0 ) {
            
            intCorrelativo++;
            drawNewLine(intCorrelativo);
            getTotales();
            //$("#txtSerch_"+intCorrelativo).select();
            
        }
    });
    
    $("#txtDebe_"+id).keyup(function() {
        if( $(this).val().length > 0 ) {
            $("#txtHaber_"+id).hide();
        }
        else {
            $("#txtHaber_"+id).show();
        }
        
        getTotales();
    });
    
    $("#txtHaber_"+id).keyup(function() {
        if( $(this).val().length > 0 ) {
            $("#txtDebe_"+id).hide();
        }
        else {
            $("#txtDebe_"+id).show();
        }
        
        getTotales();
    });
    
    $("input[name='txtDebe_"+id+"']").blur(function() {
        $(this).formatCurrency({ colorize: true, negativeFormat: '-%s%n', roundToDecimalPlace: 2, symbol: strSimbolo });
    }).keyup(function(e) {
        var e = window.event || e;
        var keyUnicode = e.charCode || e.keyCode;
        if (e !== undefined) {
            switch (keyUnicode) {
                case 16: break; // Shift
                case 17: break; // Ctrl
                case 18: break; // Alt
                case 27: this.value = ''; break; // Esc: clear entry
                case 35: break; // End
                case 36: break; // Home
                case 37: break; // cursor left
                case 38: break; // cursor up
                case 39: break; // cursor right
                case 40: break; // cursor down
                case 78: break; // N (Opera 9.63+ maps the "." from the number key section to the "N" key too!) (See: http://unixpapa.com/js/key.html search for ". Del")
                case 110: break; // . number block (Opera 9.63+ maps the "." from the number block to the "N" key (78) !!!)
                case 190: break; // .
                default: $(this).formatCurrency({ colorize: true, negativeFormat: '-%s%n', roundToDecimalPlace: -1, symbol: strSimbolo, eventOnDecimalsEntered: true });
            }
        }
    });
    
    $("input[name='txtHaber_"+id+"']").blur(function() {
        $(this).formatCurrency({ colorize: true, negativeFormat: '-%s%n', roundToDecimalPlace: 2, symbol: strSimbolo });
    }).keyup(function(e) {
        var e = window.event || e;
        var keyUnicode = e.charCode || e.keyCode;
        if (e !== undefined) {
            switch (keyUnicode) {
                case 16: break; // Shift
                case 17: break; // Ctrl
                case 18: break; // Alt
                case 27: this.value = ''; break; // Esc: clear entry
                case 35: break; // End
                case 36: break; // Home
                case 37: break; // cursor left
                case 38: break; // cursor up
                case 39: break; // cursor right
                case 40: break; // cursor down
                case 78: break; // N (Opera 9.63+ maps the "." from the number key section to the "N" key too!) (See: http://unixpapa.com/js/key.html search for ". Del")
                case 110: break; // . number block (Opera 9.63+ maps the "." from the number block to the "N" key (78) !!!)
                case 190: break; // .
                default: $(this).formatCurrency({ colorize: true, negativeFormat: '-%s%n', roundToDecimalPlace: -1, symbol: strSimbolo, eventOnDecimalsEntered: true });
            }
        }
    });
    $("input[name='txtDebe_"+id+"']").formatCurrency({ colorize: true, negativeFormat: '-%s%n', roundToDecimalPlace: 2, symbol: strSimbolo });
    $("input[name='txtHaber_"+id+"']").formatCurrency({ colorize: true, negativeFormat: '-%s%n', roundToDecimalPlace: 2, symbol: strSimbolo });
    
    if( boolEdit ) {
        $("#divCuenta_"+id).dblclick( function () { 
            $("input[name='hdnCuenta_"+id+"']").val("");
            $(this).html("");
            $("#txtSerch_"+id).show();
            $("#txtSerch_"+id).select();
        });
    }
    else {
        if( $("#txtDebe_"+id).val().length > 0 ) {
            $("#txtHaber_"+id).hide();
        }
        if( $("#txtHaber_"+id).val().length > 0 ) {
            $("#txtDebe_"+id).hide();
        }
        getTotales();
    }
}
function getTotales() {
    sinTotalDebe = 0;
    sinTotalHaber = 0;
    
    $("input[name*='txtDebe_']").each( function() {
        arrSplit = $(this).attr("name").split("_");
        
        if( $("#hdnCuenta_"+arrSplit[1]).val().length > 0 ) {
            sinTotalDebe += $(this).asNumber() * 1;
            sinTotalDebe = sinTotalDebe * 100;
            sinTotalDebe = Math.round(sinTotalDebe);
            sinTotalDebe = sinTotalDebe / 100;
        }
    });
    
    $("input[name*='txtHaber_']").each( function() {
        arrSplit = $(this).attr("name").split("_");
        
        if( $("#hdnCuenta_"+arrSplit[1]).val().length > 0 ) {
            sinTotalHaber += $(this).asNumber() * 1;
            sinTotalHaber = sinTotalHaber * 100;
            sinTotalHaber = Math.round(sinTotalHaber);
            sinTotalHaber = sinTotalHaber / 100;
        }
            
    });
    var sinTotalD = new Number( sinTotalDebe );
    sinTotalDebe = sinTotalD.toFixed(2);
    var sinTotalH = new Number( sinTotalHaber );
    sinTotalHaber = sinTotalH.toFixed(2);
    
    $("input[name='txtTotalDebe']").val(sinTotalDebe);
    $("input[name='txtTotalHaber']").val(sinTotalHaber);
    
    $('input[name="txtTotalDebe"]').formatCurrency({ colorize: true, negativeFormat: '-%s%n', roundToDecimalPlace: 2, symbol: strSimbolo });
    $('input[name="txtTotalHaber"]').formatCurrency({ colorize: true, negativeFormat: '-%s%n', roundToDecimalPlace: 2, symbol: strSimbolo });
    
    if( sinTotalDebe == sinTotalHaber ) {
        $("#btnAcademicoCobrosAnulacionGrabar").button( "enable" );
    }
    else {
        $("#btnAcademicoCobrosAnulacionGrabar").button( "disable" );
    }
}
function checkCuentas(id) {
    boolReturn = false;
    $("input[name*='hdnCuenta_']").each( function() {
        
        if( $(this).val() == id ) boolReturn = true;
        
    });        
    
    return boolReturn;        
}
function fntAcademicoCobrosAnulacionValidar() {
    
    strError = "";
    boolRetorna = true;
    
    
    if( ($("input[name='hdnAcademicoCobrosAnulacionMonto']").val()*1) != ($("input[name='txtTotalDebe']").asNumber()*1) ) {
        boolRetorna = false;
        strError = "La partida no cuadra con el total de la factura.";        
    }
    
    if( !boolRetorna ) {
         alert(strError);
    }
    
    return boolRetorna;
    
}

$(function() {
    $("#btnAcademicoCobrosAnulacionNuevo").click( function () {
        fntAcademicoCobrosAnulacionNuevo();
    });
    $("#btnAcademicoCobrosAnulacionGrabar").click( function () {
        fntAcademicoCobrosAnulacionGrabar();
    });
    fntAcademicoCobrosAnulacionFiltro();

});